package com.company;

import com.company.strategy.type2.CouponContext;
import com.company.strategy.type2.MJCouponStrategy;
import com.company.strategy.type2.Order;
import com.company.strategy.type2.ZKCouponStrategy;

/**
 * 电商优惠券场景的策略模式测试代码
 */
public class TestForStrategy2 {

    public static void main(String[] args) {
        //订单对象
        Order order = new Order("001",1000);

        //优惠券上下文
        CouponContext context;

        //订单最终价格
        double finalPrice;


        //不同策略(即优惠券)计算出不同的价格
        //满减券策略（满1000减100）
        context = new CouponContext(new MJCouponStrategy(100));
        finalPrice = context.executeStrategy(order);
        System.out.println("原价：1000，使用满减券（满1000减100）的最终价格："+finalPrice);

        System.out.println("=====================================================");

        //折扣券策略（8.8折）
        context = new CouponContext(new ZKCouponStrategy(0.88));
        finalPrice = context.executeStrategy(order);
        System.out.println("原价：1000，使用折扣券（8.8折）的最终价格："+finalPrice);

    }
}
